const User = require('./collection/User')

/**
 * db.users.find({}) 查询所有
 * db.users.find({key:value}) 单一条件查询
 * db.users.find({key:value},{key1:1,key2:0}) 设置显示1隐藏0
 * 除了_id设为0 其余字段一定要慎重
 * 如果要显示他们的值,直接设置它们的值为1
 * 或者是直接设置其余的值为0
 * 
 * db.users.find({key1:value1,key2:value2},{}) 多条件查询 -- 且
 * db.users.find({$or:[{key1:value1},{key2:value2}]}, {}) 多条件查询 -- 或
 * 
 * db.users.find({},{}).sort({key:1||-1}) 以key字段排序,1为升序,-1为降序
 * db.users.find({},{}).limit(limitnum).skip(count*limitnum) count页码(从0开始) limitnum 每页显示条数
 * db.users.find({key:{$gte:value1,$lte:value2}},{}) 区间查询
 * db.users.distinct(key) key是字符串,只查询数据库的key字段,查询数组
 */

/*
User.find({}, (err,data) => {
    if(err) throw err;
    console.log(data);
})

User.find({username:"lmx"}, (err,data) => {
    if(err) throw err;
    console.log(data);
})

/*
// exec即执行完后将调用callback函数,
User.find({age:17}).exec((err,data)=> {
    if(err) throw err;
    console.log(data);
})


User.find({username:"lmx"},{_id:0,password:0},(err,data) => {
    if(err) throw err;
    console.log(data)
})


//Cannot do inclusion on field sex in exclusion projection
// 除了_id:0 其他字段 0和1 不能混用
User.find({username:"lmx"},{_id:0,password:0,sex:1},(err,data) => {
    if(err) throw err;
    console.log(data)
})


User.find({ sex:0, age:16},{},(err,data) => {
    if(err) throw err;
    console.log(data)
})


User.find({$or: [{ sex:0},{age:16}]},{},(err,data) => {
    if(err) throw err;
    console.log(data)
})

// 第一种写法,回调函数参数放在find函数最后
User.find({},{},(err,data) => {
    if(err) throw err;
    console.log(data)
}).sort({age:1});

// 第二种写法,回调函数参数放在exec函数里面
User.find({},{}).sort({age:1}).exec((err,data) => {
    if(err) throw err;
    console.log(data)
});

User.find({age: {$gte:16,$lte:17}},(err,data) =>{
    if(err) throw err;
    console.log(data)
})

User.distinct('age',(err,data) => {
    if(err) throw err;
    console.log(data)
})
*/